/*
 * Campania.h
 *
 */

#ifndef CAMPANIA_H_
#define CAMPANIA_H_

#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <map>
#include "Nivel.h"

using std::string;
using std::map;

// Clase que contiene los datos de una campaña, y los niveles de la misma

class Campania {
private:
	int id;
	int cantJugadoresMin;
	string imagen;
	int nivelDificultad;
	string nombre;
	map<int, Nivel*> secuenciaNiveles;

public:
	Campania(int id, int cantJugadoresMin, string imagen, int nivelDificultad, string nombre);
	virtual ~Campania();
	int getId();
	int getCantJugadoresMin();
	string getImagen();
	int getNivelDificultad();
	string getNombre();
	int getNumberOfLevels();
	void addNivel(int orden, Nivel & nivel);
	map<int, Nivel*> & getSecuenciaNiveles();
	Nivel* getLevel(int level_number);
	void setCantJugadoresMin(int cantJugadoresMin);
	void setImagen(string imagen);
	void setNivelDificultad(int nivelDificultad);
	void setNombre(string nombre);
	void setId(int id);
};

#endif /* CAMPANIA_H_ */
